//中间的分类
//1. 应用中间  app.use()
//2. 路由中间  route.use

//3. 错误中间件 参数多了一个  必须放在定义路由后面
// app.use((err, req, res, next)

const express = require("express");
const app = express();
const fs = require("fs");

//定义路由
app.get("/login", (req, res, ext) => {
  throw new Error("服务器内服错误");
});
app.get("/user", (req, res, next) => {
  // 错误中间件只能捕获到同步的代码错误，异步需要传递参数
  console.log(1);
  fs.readFile("./zks", "utf-8", function (err, result) {
    if (err) {
      next(err);
    } else {
      res.send(result);
    }
  });
});
//声明全局中间件  错误中间件 注册在路由之后
app.use((err, req, res, next) => {
  console.log("发生错误 " + err.message);
  res.send(err.message);
});

//启动服务器
app.listen(80, function () {
  console.log("http://127.0.0.1");
});
